// 需要从设置的lang/index中获取配置的i18n
import { i18n } from '@/lang/index';
const { t } = i18n.global;
let modules = import.meta.glob("../../views/**/*.vue")


export default {
  /**
  * initMenu 处理权限菜单
  * filterMenuDate 过滤菜单数据
  */
  initMenu(initMenus: any) {
    let arr = JSON.parse(JSON.stringify(initMenus));
    return this.filterMenuDate(arr, '');
  },
  filterMenuDate(arr, parentPath) {
    return arr.map((k) => {
      k.path = parentPath ? `${parentPath}/${k.menuCode}` : `/${k.menuCode}`;
      k.menuName = t(`router.${k.menuCode}`); // 不用后端返回的菜单名称是因为前端做了中英文切换 添加菜单时候注意
      if (k.children && k.children.length) {
        k.children = this.filterMenuDate(k.children, k.path);
      } else {
        k.children = [];
      }

      return k;
    }).filter((k) => k.menuShow !== 0);
  },
  /**
  * initRoute 处理权限路由
  * filterRouteDate 过滤路由数据
  */
  initRoute(initRouters: any) {
    let arr = JSON.parse(JSON.stringify(initRouters));
    return this.filterRouteDate(arr, '');
  },
  filterRouteDate(arr, parentPath) {
    return arr.map((k) => {
      k.meta = {
        title: t(`router.${k.menuCode}`),
      };
      k.path = k.menuCode; // 路由本身需要参数 （子路由不需要添加/）
      k.name = k.menuCode; // 路由本身需要参数 （路由name）
      var insertPath = parentPath ? `${parentPath}/${k.menuCode}` : `${k.menuCode}`; // 文件路径
      // 此处两个../的路径是根据utils=>store=>index.ts找的
      k.component = modules[`../../views/${insertPath}/index.vue`];
      if (k.children && k.children.length) {
        k.children = this.filterRouteDate(k.children, insertPath);
      } else {
        k.children = [];
      }

      return k;
    });
  },
}
